home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
CRS
/
crs05.d81
/
heidi.prg
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2009-10-10
|
5KB
|
158 lines
10 DIMX$(100),KB$(255):TL=0
20 SP$=" "
30 POKE53281,0:POKE53280,0:PRINT"":GOSUB2200
40 V=54272:POKEV+24,13:POKEV+5,8:POKEV+6,0:K1$=LEFT$(SP$,28)
60 SK$=CHR$(34)+"@&^'&(*)(+-[219][164]-=[221]+@[[186][219]*][192][221]:;[:;']"+CHR$(34)
70 DK$="11223344556677889900+[-=\"+CHR$(20)+"Q'W,E.RPTYYFUGICORPL@/*]"
80 DK$=DK$+"AASODEFUGIHDJHKTLN:S;-Z;XQCJVKBXNBMM,W.V/Z"
90 DK$=DK$+"!!"+CHR$(34)+"@##$$%%&''&(*)([219][219][221]+[209]"+CHR$(34)+"[215]<[197]>[210][208][212][217][217][198][213][199][201][195]"
100 DK$=DK$+"[207][210][208][204][186]?[192][221][193][193][211][207][196][197][198][213][199][201][200][196][202][200][203][212][204][206][[211]][164][218]:[216][209][195][202][214][203][205][216][206][194][205][205]<[215]>[214]?[218]"
200 PRINT"[147][154] [200] [197] [201] [196] [201] ' [211] [212] [217] [208] [201] [206] [199] [212] [197] [211] [212] [146]";
210 PRINT"[152][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162]";
215 IF FX=0THENFX=1:PRINT"[152] BY [211]TEVEN [205]OON 1989 ";:GOTO220
216 PRINTSP$;
220 PRINT""SP$"[175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175]";
230 PRINT""SP$"[183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183]";
240 FORI=1TO2:PRINT" [146]"LEFT$(SP$,36)" ";:NEXT
250 PRINT"[175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175]";
260 PRINT"[158] [164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164] ";
270 FORM=1TO4:PRINT" [167]";K1$;"[165] ";:NEXT:IFPEEK(789)=234THENSYS6904
280 PRINT" [163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163] ";:POKE2023,160:POKE56295,7
500 PRINT""
510 PRINT" 1. [212][193][203][197] [212][217][208][201][206][199] [212][197][211][212]"
520 PRINT" 2. [199][197][212][160][212][197][216][212] [198][210][207][205] [196][201][211][203]"
530 PRINT" 3. [212][217][208][197] [201][206][160][212][197][216][212] [198][207][210] [212][197][211][212]"
540 PRINT" 4. [203][197][217][194][207][193][210][196] [204][193][217][207][213][212]"
550 PRINT" 5. [195][207][206][214][197][210][212] [211][197][209] [212][207] [212][217][208][197] [212][197][216][212]"
555 PRINT" 6. [193][194][207][213][212][160][212][200][197][160][208][210][207][199][210][193][205]"
560 PRINT" 9. [209][213][201][212]"
600 GETA$:A=VAL(A$):IFA=0THEN600
620 GOSUB8500:ON A GOSUB 1000, 6000,5000,2000,7000,3000,900,900,910
630 GOTO200
900 RETURN
910 X=6:Y=16:GOSUB8700:PRINT"[209][213][201][212] -- ARE YOU SURE (Y/N)[151]"
920 GETA$:IFA$=""THEN920
930 IFA$<>"Y"THEN200
940 PRINT" [142][147]":SYS6904
950 END
1000 IF TL>0 THEN 1100
1010 X=5:Y=16:GOSUB8700:PRINT"NO TEXT IN MEMORY";:GOSUB8000:RETURN
1100 GOSUB8800:GOSUB8500:ER=0:X=0:Y=3:GOSUB8700
1110 PRINT"";X$(1)"[155]":PRINT"[163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][151]";
1120 FORI=2TO4:PRINTLEFT$(X$(I)+SP$,40);"";:NEXT:Z1=FRE(0):GOSUB8510
1200 FORD=1TOTL:R=LEN(X$(D)):X=0:Y=14:GOSUB8700:PRINT"";
1210 FORJ=1TOR:W=1143+J:POKEW,PEEK(W)+128
1220 GETA$:IFA$=""THEN1220
1290 IF(D=1)AND(J=1)THENTI$="000000"
1300 A$=KB$(ASC(A$)):IF(A$="0")AND(PEEK(643)=1)THENA$=")"
1305 IFA$=MID$(X$(D),J,1)THEN1320
1310 FORK=1TO5:GOSUB8200:NEXT::ER=ER+1:GOTO1220
1320 PRINTA$;:POKE212,0:POKEW,PEEK(W)-128:NEXT
1340 X=0:Y=3:GOSUB8700:PRINT"[146]";:FORM=D+1TOD+4
1350 PRINTLEFT$(X$(M)+SP$,40)"[151]";:NEXT
1360 X=0:Y=14:GOSUB8700:PRINT""SP$;
1370 NEXT
1400 TE=TI:X=2:Y=16:GOSUB8700:PRINT"[146][156]SPEED:";
1420 WM=(LW/6)/(TE/3600)
1425 PRINT INT(WM+.5)"WPM";
1430 PRINT" ERRORS:";ER;"";
1440 GOSUB8000:RETURN
2000 GOSUB8500
2020 PRINT" [203]EYBOARD [211]ELECTION"
2100 PRINT" [195]HOOSE ONE: ";
2110 PRINT"[160] 1. [195]OMMODORE KEYBOARD ";
2120 PRINT" 2. [211]TANDARD KEYBOARD ";
2130 PRINT" 3. [196]VORAK KEYBOARD "
2140 GETA$:A1=VAL(A$):IF(A1<1)OR(A1>3)THEN2140
2150 GOSUB8800:SYS6904:ONA1GOSUB2200,2300,2400:SYS6904:RETURN
2200 GOSUB8300:KE$="[195]OMMODORE"
2210 POKE6834,24:POKE6838,27:POKE6824,80:POKE6828,27
2220 RETURN
2300 GOSUB8300:KE$="[211]TANDARD"
2320 POKE6834,136:POKE6838,27:POKE6824,192:POKE6828,27
2340 FORI=1TO34STEP2:KB$(ASC(MID$(SK$,I,1)))=CHR$(ASC(MID$(SK$,I+1,1))):NEXT
2390 RETURN
2400 KE$="[196]VORAK"
2410 POKE6834,248:POKE6838,27:POKE6824,48:POKE6828,28
2420 FORI=1TO180STEP2:KB$(ASC(MID$(DK$,I,1)))=CHR$(ASC(MID$(DK$,I+1,1))):NEXT
2490 RETURN
3000 NF$="INSTRUCTION.TYP":GOSUB6030:GOSUB8510:P1=FRE(0)
3010 FORD=1TOTL:X=0:Y=3:GOSUB8700:PRINT"[146]";:FORM=DTOD+7
3020 PRINTLEFT$(X$(M)+SP$,40);:NEXT:GOSUB8000
3040 NEXT:RETURN
5000 LI=1
5010 X=3:Y=16:GOSUB8700:PRINT"[146]LINE NUMBER";LI
5020 GOSUB8600
5030 IFP$<>""THENX$(LI)=P$:LI=LI+1:GOTO5060
5040 IFLI=1THENRETURN
5050 GOTO5110
5060 GOSUB8500:X=0:Y=3:GOSUB8700
5070 FORM=LI-4TOLI-1:M1=-M*(M>0):PRINTLEFT$(X$(M1)+SP$,39);" ";:NEXT
5080 GOTO5010
5110 TL=LI-1:GOSUB8800
5120 LW=0:FORI=1TOTL:LW=LW+LEN(X$(I)):NEXT
5130 GOSUB8100:IFNF$=""THEN5210
5140 OPEN15,8,15:GOSUB8400:IFZ1<>0THEN5200
5150 OPEN8,8,8,NF$+",S,W":GOSUB8400:IFZ1<>0THEN5190
5160 PRINT#8,LW
5170 PRINT#8,TL
5180 FORI=1TOTL:PRINT#8,X$(I):NEXT
5190 CLOSE8
5195 GOSUB8400
5200 CLOSE15
5210 RETURN
6000 GOSUB8100:IF(NF$="")THEN6170
6030 OPEN15,8,15:GOSUB8400:IFZ1<>0THEN6160
6100 GOSUB8800:OPEN8,8,8,NF$+",S,R":GOSUB8400:IFZ1<>0THEN6150
6110 INPUT#8,LW,TL
6120 FORI=1TOTL:B$=""
6130 GET#8,A$:IFA$<>CHR$(13)THENB$=B$+A$:GOTO6130
6140 X$(I)=B$:NEXT
6150 CLOSE8
6155 GOSUB8400
6160 CLOSE15
6170 RETURN
7000 REM CONVERT
7010 OPEN15,8,15:GOSUB8400
7100 GOSUB8510:X=3:Y=16:GOSUB8700:PRINT"[211][197][209] FILE TO BE CONVERTED";
7110 GOSUB8600:IFP$=""THEN CLOSE15:RETURN
7120 OPEN8,8,8,P$+",S,R":GOSUB8400:IFZ1>19THENCLOSE8:CLOSE15:RETURN
7130 D=D+1:YL$=""
7140 GET#8,X$:IFST AND 64 THEN 7170
7150 IFX$<>CHR$(13)THENYL$=YL$+X$:GOTO7140
7160 X$(D)=YL$+" ":GOTO7130
7170 X$(D)=YL$+" ":TL=D-1
7180 CLOSE8:CLOSE15:GOSUB5120
7190 RETURN
8000 X=9:Y=17:GOSUB8700:PRINT"PRESS [210][197][212][213][210][206][146] TO CONTINUE"
8010 GETA$:IFA$<>CHR$(13)THEN8010
8020 RETURN
8100 GOSUB8510:X=4:Y=16:GOSUB8700:PRINT"[146] ENTER THE FILENAME"
8120 GOSUB 8600:NF$=P$:RETURN
8200 POKEV+4,0:POKEV+1,80:POKEV+4,17
8210 FORT=1TO30:NEXT
8230 POKEV+1,0:POKEV+4,0
8240 RETURN
8300 FORI=0TO255:KB$(I)=CHR$(I):NEXT
8320 RETURN
8400 INPUT#15,Z1,Z2$,Z3,Z4
8410 IF Z1<19 THEN RETURN
8420 X=2:Y=16:GOSUB8700:PRINT"[146]DISK ERROR:";
8430 PRINT"[158]";Z2$
8440 GOSUB8000:RETURN
8500 PRINT"[146]";:FORI=1TO9:PRINTSP$;:NEXT:PRINT"";:RETURN
8510 X=2:Y=16:GOSUB8700:PRINT"[146]";LEFT$(SP$,36)
8520 X=2:Y=17:GOSUB8700:PRINT"[146]";LEFT$(SP$,36):RETURN
8600 P=0:P$="":X=0:Y=14:GOSUB8700:PRINT"[164]";LEFT$(SP$,39);:X=0:Y=14:GOSUB8700
8610 GETA$:IFA$=""THEN8610
8615 A$=KB$(ASC(A$)):IF(A$="0")AND(PEEK(653)=1)THENA$=")"
8620 IF(A$=CHR$(20))AND(P>0)THENP=P-1:P$=LEFT$(P$,P):PRINT"[157] [157][157][164][157]";:GOTO8610
8630 IFA$=CHR$(13)THEN 8680
8640 AB=ASC(A$):IF(AB<32)OR(AB>219)THEN8610
8650 IFP>37THENFORI=1TO4:GOSUB8200:NEXT:GOTO8610
8660 PRINTA$;:IFA$=CHR$(34)THENPOKE212,0
8670 PRINT"[164][157]";:P$=P$+A$:P=P+1:GOTO8610
8680 RETURN
8700 POKE781,Y:POKE782,X:POKE783,0:SYS65520:RETURN
8800 GOSUB8510:X=5:Y=16:GOSUB8700:PRINT"[159]PLEASE WAIT":RETURN